bitkeeper revision 1.1159.273.2 (423c8d62e3tPnc05kdzopOE3xfcNiA)
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Sat, 19 Mar 2005 20:36:50 +0000 (20:36 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Sat, 19 Mar 2005 20:36:50 +0000 (20:36 +0000)
Allow domain0 to see PCI bridges. It should be able to deal with
seeing PCI buses twice (once as a 'root bridge' from Xen; once by
scanning behind a PCI-PCI bridge itself), and this gets rid of
problems where the bridge needs to be seen by XenLinux for drivers
to work (e.g., Mellanox Infiniband chipsets).
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/common/physdev.c

index 516479c0b87f6f27042e41f0a546590b4809b0c1..ff79c72b283e58b6b21d34aaa3076e6aa20d3f6d 100644 (file)
@@ -733,22 +733,6 @@ void physdev_init_dom0(struct domain *p)
             continue;
         }
 
-        /* Skip bridges and other peculiarities for now.
-         *
-         * Note that this can prevent the guest from detecting devices
-         * with fn>0 on slots where the fn=0 device is a bridge.  We
-         * can identify such slots by looking at the multifunction bit
-         * (top bit of hdr_type, masked out in dev->hdr_type).
-         *
-         * In Linux2.4 we find all devices because the detection code
-         * scans all functions if the read of the fn=0 device's header
-         * type fails.
-         *
-         * In Linux2.6 we set pcibios_scan_all_fns().
-         */
-        if ( (dev->hdr_type != PCI_HEADER_TYPE_NORMAL) &&
-             (dev->hdr_type != PCI_HEADER_TYPE_CARDBUS) )
-            continue;
         pdev = xmalloc(sizeof(phys_dev_t));
         pdev->dev = dev;
         pdev->flags = ACC_WRITE;